Switching is the process by which a network device forwards data arriving at one of its input ports to one of its output ports. Routers and ATM (asynchronous transfer mode data transmission system) switches are referred to as packet switches in that they both switch data in the form of packets containing both data, referred to as the payload, and information about the payload, referred to as the meta-data or the header. The latter comprises one or more fields representing the destination (in the form of a destination address or a virtual circuit identifier), the source address, the data length, the data type and other useful information not pertinent to the present invention. The meta-data makes the information self-descriptive in that no additional information is required to interpret the payload data. A packet based network switches and routes each packet independently of other packets associated with a given message. Thus the receiving device must reassemble the packets to reconstruct the complete message.
Telephony switches, which transfer voice samples in the form of digital signals between the calling and the called party, are circuit-switched devices. That is, control information sent separately from the voice samples is required to set up the path from the source to the destination. Further, this circuit path remains uniquely dedicated to the call for the entire call duration.
A connectionless switching device, such as a router, reads the destination address from the meta-data and using an internal routing table, determines the output interface to which the packet should be sent. Thus the packet itself includes sufficient information to route the data to its intended destination.
A connection-oriented switch includes both a switch fabric and a switch controller. As applied to an ATM network, the packet header (note in ATM networks the data unit us typically referred to as a cell, rather than a packet) carries a virtual circuit identifier, instead of a destination address, and each switch in the network has the ability to translate from the identifier to a specific destination address. Header space is saved because identifiers are smaller than addresses, but the mapping for the identifier must be established at each switch along the path before the actual data transmission can begin. Thus during the switch set-up phase, the switch controller uses the destination address in the packet to associate a data forwarding path within the switch with a virtual circuit identifier that will be provided to the packet. This virtual circuit identifier defines the route that the packet will travel at each switch in the path until the destination is reached. During the data transfer phase, the switches move the packet along the path through the virtual circuit.
A conventional generic packet switch, whether for operation in the connection or connection-less mode, has four primary elements: input and output buffers, the switch fabric and a port mapper. The input buffers store packets as they arrive on the input line, holding the packets until they take their turn through the switch fabric. The port mapper reads either the packet destination address or the virtual circuit identifier from the packet header and then refers to an internal table to determine the appropriate packet output port from the switch fabric.
The switch fabric routes the data from input to output and can comprise a processor that reads data from an input port and routes the data to the output port. The output buffer stores data waiting to pass into the output line. A scheduler manages the output and the input buffers and arbitrates access to the output line and the switch, respectively.
Typically, the input and output buffers are included within line cards that are interposed between the switch input and output ports and the switch fabric. Each line card includes a bidirectional port connected to the switch fabric and a connection to external lines including an input line for receiving data packets and an output line for sending data packets. In lieu of a single bidirectional line connected to the switch fabric, two lines can be used, one operating as an input and the other operating as an output. In one embodiment of the switch, the processor in the switch periodically polls the input buffers within the line cards to determine if data is waiting to be transferred through the switch. In another embodiment the processor is interrupted by the arrival of a packet at an input buffer. The processor reads the packet header, determines the proper output port from a routing table and transfers the packet to the appropriate output buffer line card serving that output port.
In another switch embodiment, the line cards include sufficient processing to determine the appropriate output port for the received packet (from the packet header) and then transfer the packet to the appropriate output line card over a shared bus. Thus the shared bus operates as the switch fabric.
In a simple network switch installation, there may be two redundant switch fabrics to increase the reliability and availability of the switching process. At any given time, one switch fabric is considered the active switch fabric and transfers all data, while the other switch fabric is designated the standby. The standby switch or a switch controller may periodically receive control data from the active switch to verify that the latter remains functional. When the active switch fails the standby switch assumes the active role and passes all the data traffic. In another embodiment both of the switches are active and simultaneously carry data traffic.
A practical network router comprises multiple switch fabrics with redundancy provided by the availability of extra switches that are not required to carry the expected level of data traffic. For example, if the switching center requires n switches to transfer the data, then some limited degree of redundancy is provided by the availability of n+1 switches. Even greater redundancy (at the cost of higher cost), and therefore higher reliability and availability, is attained by the use of 2n switches. In these switch configurations the line cards are connected to each of the redundant switches.
Certain known system events will cause the redundant active and standby switches to swap roles, where the active switch goes into a standby mode and the standby switch becomes active for transferring data. The basis for this switch decision can be the result of a detected system or hardware fault or as commanded by the system operator, for instance, to allow maintenance services to be performed on one switch. The bases for making a decision to swap the roles of redundant switches are discussed at length in the literature and do not form a part of this invention.